package com.awesome.db.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Author: JFangZ
 * Email:janezhang1901@163.com
 * Date: 2020/3/12 17:54
 * Description:该注解用于建立成员变量与列名的对应关系
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Column {
    enum Type {
        NULL, INTEGER, LONG, REAL, TEXT, BLOB
    }

    String name() default "";

    /**
     * 唯一约束
     */
    boolean unique() default false;

    /**
     * 联合键唯一约束,默认 true,如需单独列的唯一性,请设置为 false
     */
    boolean unionUnique() default false;
    /**
     * 是否不能为 null,默认 false
     */
    boolean notNull() default false;
}